//作为IE8的兼容
function getEleStyle(ele, attr) {
  // 做浏览器能力的检测
  if (window.getComputedStyle) {
    var style = window.getComputedStyle(ele, null);
    return style[attr];
  } else {
    return ele.currentStyle[attr];
  }
}

//封装animate动画函数
function animate(ele, jsonImp, callback) {
  //每次启动定时器之前先停止计时器
  clearInterval(ele.timerId);
  ele.timerId = setInterval(function () {      // 定时器
    // 开关  true/false
    var nav = true;
    //遍历属性
    for (var attr in jsonImp) {
      // 获取元素
      var current = parseInt(getEleStyle(ele, attr));
      // 得到为px元素值
      var target = jsonImp[attr];
      // 缓速移动时的距离
      var steep = (target - current) / 10;
      // 缓速移动判断
      steep = steep > 0 ? Math.ceil(steep) : Math.floor(steep);
      // 缓速移动后的值
      current += steep;
      // 赋值
      ele.style[attr] = current + "px";
      // 开关判断
      if (current != target) {
        nav = false;
      }
    }
    // 何时停止移动
    if (nav) {
      // 停止
      clearInterval(ele.timerId);
      //回调函数是否调用
      if (callback) {
        callback();
      }
    }
  }, 25);
}